/**
 * Created by Administrator on 2017/3/22.
 // */
//json封装event滚动兼容事件
function myEventScroll() {
    //兼容IE9+  火狐谷歌最新版本
    if (window.pageXOffset != null) {
        return {
            left: window.pageXOffset,
            top:window.pageYOffset
        };
        //兼容谷歌
    } else if(document.body.scrollLeft != null){
        return{
            left:document.body.scrollLeft,
            top:document.body.scrollTop
        };
        //兼容火狐和IE678
    } else if(document.documentElement.scrollLeft != null){
        return{
            left:document.documentElement.scrollLeft,
            top:document.documentElement.scrollTop
        }

    }


}

//封装id
function $(id) {
    return document.getElementById(id);
}

//封装ClassName兼容性问题(兼容IE678)
function  getClassName(classname) {
    //容错处理
    if(typeof classname != 'string'){//是classname的类型判断
        console.error('字符类型有错');
        return;
    }
    //1.否支持getElementByClassName方法
    if(document.getElementsByClassName){
        return document.getElementsByClassName(classname);
    }

    //2.不支持该方法
    //2.1 获取页面内所有的便签元素
    var Alltag = document.getElementsByTagName('*');
    var Arr = [];//设置一个数组用来存放所有找到的ClassName
    //遍历所有取出的标签
    for(var i=0;i<Alltag.length;i++){
        var tag = Alltag[i];
        //再次判断取出的class中有没有双类名class='div demo'这种存在，IE会把这个当做一个类名
        var arrClassName = tag.className.split(' ');//将取出的类名以空格(' ')的方式分隔存放在arrClassName数组中
        for(var j=0;j<arrClassName.length;j++){
            if( arrClassName[j] == classname){//判断获取的每个arrClassName和方法getClassName()传入的classname是否相同
                Arr.push(tag);//相同把它放在数组Arr中；
            }
        }

    }
    return Arr;
}

//封装匀速动画
function  constant(obj,end,speed) {
    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
        var dir =(end>=obj.offsetLeft)?speed:-speed;
        obj.style.left = obj.offsetLeft + dir + 'px';

        if(Math.abs(end-obj.offsetLeft)<speed){
            //end-obj.offsetLeft判断最后一个end 和最后一个offsetLeft的相减后的值相比，如果小于速度，就继续，如果大于了速度，那么停止，并把当前的end值赋给left,因为是匀速运动，所以速度不变，每次加值后的数可能会大于end，从而使left大于end值，比如设置目标值805，速度是每次加20，那么最后倒数第二个是800，此时还没到目标值805，不判断的话会继续加就会到820，left就是820就出错了，所以判断了当他们相减的时候大于了速度20就不走了，把目标值805直接赋予left
            obj.style.left = end +'px';
            clearInterval(obj.timer);
        }
    },20)
}